package com.by.facade.dto.clue;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author Tian Wei
 * @version 1.0
 * @date 2024/4/2 2:40 PM
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ClueWorkbenchConditionConvertAfterWDTO {

    //("[转私域]用户入群状态")
    private Integer userWxCpGroupStatus;

    //("[转私域,促转化]用户加微信状态")
    private Integer userWxCpFriendStatus;

    //("[转私域]是否多个IP和地址")
    private Integer multiRegionFlag;

    //("[转私域,跟到课,促转化]手机号")
    private String phone;

    //("[转私域,跟到课,促转化]用户id")
    private Long userId;

    //("[转私域,跟到课,促转化]用户昵称")
    private String nickName;

    //("[转私域,跟到课,促转化]期数")
    @NotNull(message = "期数不能为空")
    private Integer phaseNo;

    //("[跟到课]用户到课状态")
    private Integer userAttachStatus;

    //("[跟到课]用户完课状态")
    private Integer userCompleteStatus;

    //("[跟到课]用户观看直播回放状态")
    private Integer userViewLiveReplayStatus;

    //("[跟到课]跟课日期")
    private String followDate;


    //("[促转化]开始下一阶段运营订单净总金额")
    private BigDecimal searchStartNetAmount;

    //("[促转化]终止下一阶段运营订单净总金额")
    private BigDecimal searchEndNetAmount;

    //("[促转化]用户运营周期状态")
    private Integer tradeStatus;

    //("[促转化]是否有过退款")
    private Integer nextStageHaveRefundFlag;

    //("[促转化]搜索开始成单时间")
    private LocalDateTime searchStartCompleteOrderDateTime;

    //("[促转化]搜索开始成单时间")
    private LocalDateTime searchEndCompleteOrderDateTime;

    //("[促转化]合同签约状态")
    private Integer contractSignStatus;

    //("排序字段类型")
    private List<Integer> sortTypeList;

    //("运营阶段")
    private Long operationStage;

    //("下阶段合同签署状态")
    private Integer nextStageContractSignStatus;

    //("下一阶段好友加微状态")
    private Integer nextStageUserWxCpFriendStatus;

    private Long sysUserId;

    //("接收答题红包状态")
    private Integer receiveSubjectRedPackageStatus;

    //("答题状态")
    private Integer answerSubjectStatus;

    private Integer nextIssuePhysicalOrderFlag;

    private Integer nextLogisticStatus;

    /**
     * 实物订单创建时间
     */
    private String nextPhysicalOrderStartCreateDateTime;
    /**
     * 实物订单创建时间
     */
    private String nextPhysicalOrderEndCreateDateTime;
    /**
     * 实物订单更新时间
     */
    private String nextPhysicalOrderStartUpdateDateTime;
    /**
     * 实物订单更新时间
     */
    private String nextPhysicalOrderEndUpdateDateTime;

    private List<Long> nextSpuIds;

    private Long coursePlanId;
}
